package com.cheetah.start.system.menu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cheetah.start.common.base.result.Result;
import com.cheetah.start.system.menu.domain.SysMenu;
import com.cheetah.start.system.menu.domain.SysMenuTree;
import com.cheetah.start.system.menu.domain.SysRealMenu;

import java.util.List;

/**
 * 系统菜单服务
 *
 * @author Feel
 * @date 2021/08/22
 */
public interface SysMenuService extends IService<SysMenu> {

    List<SysRealMenu> menuList(int userId);

    List<SysRealMenu> toMenu(List<SysRealMenu> sysRealMenus, String parentId);

    /**
     * 启用或禁用
     *
     * @param menuId 菜单id
     * @param enable 启用
     * @return {@link Result}
     */
    Result enableOrDisable(Integer menuId, String enable);


    /**
     * 复制到 SysMenuTree
     *
     * @param sysMenus 系统菜单
     * @return {@link List<SysMenuTree>}
     */
    List<SysMenuTree> copyTo(List<SysMenu> sysMenus);

    /**
     * 菜单树
     * 顶级的 parentId 为 0
     *
     * @param sysMenus 系统菜单
     * @return {@link List<SysMenuTree>}
     */
    List<SysMenuTree> menuTree(List<SysMenuTree> sysMenus, Integer parentId);
}
